package com.docmgmt.mvp.ragflow.dto;

import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.List;

/**
 * Chunk 详情响应 VO
 * 
 * GET /api/v1/datasets/{dataset_id}/documents/{document_id}/chunks
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class ChunkDetailVO {

    /**
     * Chunk ID
     */
    private String id;

    /**
     * Chunk内容
     */
    private String content;

    /**
     * 文档ID
     */
    @JsonProperty("document_id")
    private String documentId;

    /**
     * 知识库ID
     */
    @JsonProperty("dataset_id")
    private String datasetId;

    /**
     * 重要关键词
     */
    @JsonProperty("important_keywords")
    private List<String> importantKeywords;

    /**
     * 是否可用
     */
    private Boolean available;

    /**
     * 在文档中的位置信息
     */
    private List<Position> positions;

    /**
     * 创建时间
     */
    @JsonProperty("create_time")
    private String createTime;

    /**
     * 创建者ID
     */
    @JsonProperty("create_by")
    private String createBy;

    /**
     * 更新时间
     */
    @JsonProperty("update_time")
    private String updateTime;

    /**
     * 更新者ID
     */
    @JsonProperty("update_by")
    private String updateBy;

    /**
     * 位置信息
     */
    @Data
    @Builder
    @NoArgsConstructor
    @AllArgsConstructor
    public static class Position {
        /**
         * 页码
         */
        private Integer page;

        /**
         * 左上角X坐标
         */
        private Float x0;

        /**
         * 左上角Y坐标
         */
        private Float y0;

        /**
         * 右下角X坐标
         */
        private Float x1;

        /**
         * 右下角Y坐标
         */
        private Float y1;
    }
}

